1. Field of the Invention
The present invention relates to the field of database driven applications and more particularly to query processing for database driven applications.
2. Description of the Related Art
Database driven computing applications have formed the foundation of practical, enterprise computing for decades. Database driven computing applications relate to the free access by application logic of data stored and managed by a database management system. In this regard, in a database driven computing application, the application developer focuses on business logic, while the database architect focuses on efficient database design. Due to this separation of concerns, the marriage of data storage and management, and application logic has resulted in a voluminous collection of database driven computing applications providing advancements in industrial productivity far beyond that known prior to the age of personal computing.
Database driven applications can include database storage subsystems that range from the simplistic flat-file database systems to complex, relational database systems. In simplistic flat file systems, the data in the database can be accessed directly by the program logic of the application. By comparison, in complex, relational database systems, carefully structured queries can be applied by the program logic of the application. Recent distributed forms of the database driven application utilize service oriented architectures where published services process queries against coupled data stores.
Database driven computing applications, especially those that require access to remote, self-contained database subsystems, center around sequences of queries and result sets produced by queries, each arising in the course of the execution of application logic. Oftentimes, a database subsystem mediator such as a database connectivity framework facilitates each transaction associated with a query. The queries themselves conform to a pre-determined query language and, in that regard, the structured query language (SQL) represents the most well-known query language in use today. As SQL is a language which is separate in syntax and grammar from other programmatic languages used to establish program logic, essentially, a database driven application is an application defined by one programmatic language into which another programmatic language has been embedded.
The embedded nature of database driven applications results in a very tight coupling between the program code of the application and the specific queries executed against a data store. Consequently, minor variations in a desired query can result in a massive change to the underlying program code of the application. Similarly, to achieve many different, albeit similar queries against a data store in an application, significant program code must be incorporated in the application itself to support the many different variants of the desired query.